// 导入登录接口,获取用户信息的接口
import {login,getUserInfo} from '@/api/user'
import router from '@/router';
import { ElMessage } from 'element-plus'
import {getOrders} from '@/api/order'

// userRouter
export default {
    state:{
        // 存储用户信息
        userInfo:{}
    },
    mutations:{
      //  c 更新用户信息

      SET_USER(state,data){
          console.log("data",data);
          state.userInfo = data;
      }  
    },
    actions:{
        // 注销动作
        exitAction(context){
            login({dopost:"exit"})
            .then(res=>{
                ElMessage(res.data.msg)
                // 注销成功
                if(res.data.status==1){
                    // 更新用户信息
                    context.commit("SET_USER",{});
                    // 跳转 到登录页面
                    router.push("/login");
                }
            })
        },

        // b vuex定义获取用户的action
        async userInfoAction(context){
           return await getUserInfo()
            .then(res=>{
                // 如果有用户信息
                if(res.data){
                    // 调用更新用户新的方法
                    context.commit("SET_USER",res.data)
                    //返回 userInfo
                    return context.state.userInfo;
                }
            })
          
           
        },

        // 实现登录动作
        loginAction(context,data){
            // 执行登录
            login(data,{loading:true})
            .then(res=>{
                // 弹出信息
                ElMessage(res.data.msg)
                if(res.data.status==1){    
                    //  登录成功执行获取用户信息的Action
                    context.dispatch("userInfoAction");
                    // 登录成功跳转到about
                    // 获取查询参数redirect 如果没有用 /admin
                //   console.log({...router.currentRoute.value});
                //     router.currentRouted当前路由
                    sessionStorage.setItem('isLog',true)
                    var redirect = router.currentRoute.value.query.redirect||"/";
                    // 跳转到登录前需要跳转的页面
                    router.push(redirect);
                }
            })
        }
    },
  
}
// 数据集中管理
// vuex store 来集中管理数据
// vuex action 集中管理移除操作数据
// vuex mutation来集中管理修改数据